package com.ningxun.pagentcrawler.service.task;

import com.ningxun.pagentcrawler.entity.CrawlerTask;
import com.ningxun.pagentcrawler.entity.task.CrawlerTaskEntity;

import java.util.List;
import java.util.Map;

/**
 * 爬虫任务服务接口
 * 
 * @author pagent
 * @date 2025-01-XX
 */
public interface ICrawlerTaskService {
    
    /**
     * 获取所有任务
     * 
     * @return 任务列表
     */
    List<CrawlerTask> getAllTasks();
    
    /**
     * 根据条件查询任务列表（支持分页）
     * 
     * @param task 查询条件
     * @return 任务实体列表
     */
    List<CrawlerTaskEntity> getAllTasks(CrawlerTask task);
    
    /**
     * 根据ID获取任务
     * 
     * @param taskId 任务ID
     * @return 任务对象
     */
    CrawlerTask getTaskById(String taskId);
    
    /**
     * 启动任务
     * 
     * @param configId 配置ID
     * @param params 任务参数
     * @return 任务对象
     */
    CrawlerTask startTask(String configId, Map<String, Object> params);
    
    /**
     * 停止任务
     * 
     * @param taskId 任务ID
     */
    void stopTask(String taskId);
    
    /**
     * 获取任务状态
     * 
     * @param taskId 任务ID
     * @return 任务状态
     */
    String getTaskStatus(String taskId);
    
    /**
     * 删除任务
     * 
     * @param taskId 任务ID
     */
    void deleteTask(String taskId);
} 